package com.UnionPayCenter.mapper;


import com.UnionPayCenter.account.entity.Account;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface AccountMapper {

    int deleteByPrimaryKey(Long accountId);

    int insert(Account record);

    int insertSelective(Account record);

    Account selectByPrimaryKey(Long accountId);

    /**
     * 查询账户信息
     *
     * @param userId 用户Id
     * @return 账户信息
     */
    List<Account> selectByUserId(@Param("userId") Integer userId);

    /**
     * 批量查询账户信息
     *
     * @param userIds 用户Id
     * @return 账户信息
     */
    List<Account> selectByUserIds(@Param("userIds") List<Integer> userIds);

    List<Account> selectByCondition(Account account);

    int updateByPrimaryKeySelective(Account record);

    /**
     * compare and set
     *
     * @param accountId 账户Id
     * @param field     字段
     * @param expect    原来的值
     * @param value     更新后的值
     * @return 影响的行数
     */
    int cas(@Param("accountId") Long accountId, @Param("field") String field, @Param("expect") Integer expect,
            @Param("value") Integer value);

}